java.time প্যাকেজটি Java 8 এ যোগ করা হয়েছে এবং এটি তারিখ, সময় এবং সম্পর্কিত কাজগুলির জন্য একটি শক্তিশালী API সরবরাহ করে। এর মধ্যে Instant ক্লাস এবং Predefined ও Custom Date-Time Formats এর ব্যবহার খুবই গুরুত্বপূর্ণ। চলুন একে একে আলোচনা করি।
1. Instant Class ব্যবহার:
Instant ক্লাসটি UTC (Coordinated Universal Time) এর একটি নির্দিষ্ট মুহূর্তকে প্রতিনিধিত্ব করে। এটি epoch time (1970-01-01T00:00:00Z) থেকে সেকেন্ড এবং ন্যানোসেকেন্ডের হিসেবে সময় মাপতে ব্যবহৃত হয়।
Instant ব্যবহার করা হয় যখন আপনার টাইমস্ট্যাম্প বা সঠিক সময় পয়েন্ট প্রয়োজন হয়।
Instant ক্লাসের প্রধান মেথডসমূহ:
Instant.now(): এটি বর্তমানInstantফেরত দেয়, অর্থাৎ বর্তমান UTC সময়।Instant.ofEpochSecond(long epochSecond): এটি একটি নির্দিষ্ট epoch সেকেন্ড থেকেInstantতৈরি করে।Instant.ofEpochMilli(long epochMilli): এটি মিলিসেকেন্ডে একটি নির্দিষ্ট epoch সময় থেকেInstantতৈরি করে।toEpochMilli(): এটিInstantকে মিলিসেকেন্ডের মধ্যে epoch time হিসেবে রিটার্ন করে।
Instant ক্লাসের উদাহরণ:
import java.time.Instant;
public class InstantExample {
public static void main(String[] args) {
// Get the current instant (UTC time)
Instant currentInstant = Instant.now();
System.out.println("Current Instant: " + currentInstant);
// Convert an epoch second to Instant
Instant instantFromEpoch = Instant.ofEpochSecond(1620830325);
System.out.println("Instant from Epoch Second: " + instantFromEpoch);
// Convert an epoch millisecond to Instant
Instant instantFromEpochMilli = Instant.ofEpochMilli(1620830325000L);
System.out.println("Instant from Epoch Millisecond: " + instantFromEpochMilli);
// Convert Instant to epoch milliseconds
long epochMilli = currentInstant.toEpochMilli();
System.out.println("Epoch Milliseconds: " + epochMilli);
}
}
আউটপুট:
Current Instant: 2024-12-23T10:30:45.123Z
Instant from Epoch Second: 2021-05-12T12:45:25Z
Instant from Epoch Millisecond: 2021-05-12T12:45:25Z
Epoch Milliseconds: 1634316745123
ব্যাখ্যা:
Instant.now(): এটি বর্তমান সময়Instant(UTC) ফেরত দেয়।Instant.ofEpochSecond(long epochSecond): এটি নির্দিষ্ট epoch সেকেন্ড থেকেInstantতৈরি করে।Instant.ofEpochMilli(long epochMilli): এটি মিলিসেকেন্ডে নির্দিষ্ট epoch সময় থেকেInstantতৈরি করে।toEpochMilli(): এটিInstantকে মিলিসেকেন্ডে epoch টাইমে রূপান্তরিত করে।
2. Predefined এবং Custom Formats ব্যবহার:
java.time.format.DateTimeFormatter ক্লাসটি তারিখ এবং সময়ের মান প্রদর্শন এবং পার্স করার জন্য ব্যবহৃত হয়। এটি Predefined এবং Custom Formats সাপোর্ট করে।
Predefined Formats:
Java-তে কিছু predefined formats রয়েছে যা ISO স্ট্যান্ডার্ড অনুসরণ করে।
- ISO_LOCAL_DATE: YYYY-MM-DD (যেমন: 2024-12-23)
- ISO_LOCAL_TIME: HH:mm:ss (যেমন: 14:30:00)
- ISO_LOCAL_DATE_TIME: YYYY-MM-DDTHH:mm:ss (যেমন: 2024-12-23T14:30:00)
- ISO_ZONED_DATE_TIME: 2024-12-23T14:30:00+05:30[Asia/Kolkata]
Custom Formats:
কাস্টম ফরম্যাট তৈরি করতে আপনি DateTimeFormatter.ofPattern("pattern") ব্যবহার করতে পারেন, যেখানে আপনি pattern দিয়ে নিজের ইচ্ছেমতো ফরম্যাট সাজাতে পারেন।
Predefined Format উদাহরণ:
import java.time.*;
import java.time.format.DateTimeFormatter;
public class PredefinedFormatExample {
public static void main(String[] args) {
LocalDate date = LocalDate.now();
LocalTime time = LocalTime.now();
LocalDateTime dateTime = LocalDateTime.now();
// ISO Predefined Formats
System.out.println("ISO_LOCAL_DATE: " + date.format(DateTimeFormatter.ISO_LOCAL_DATE));
System.out.println("ISO_LOCAL_TIME: " + time.format(DateTimeFormatter.ISO_LOCAL_TIME));
System.out.println("ISO_LOCAL_DATE_TIME: " + dateTime.format(DateTimeFormatter.ISO_LOCAL_DATE_TIME));
}
}
আউটপুট:
ISO_LOCAL_DATE: 2024-12-23
ISO_LOCAL_TIME: 14:30:00
ISO_LOCAL_DATE_TIME: 2024-12-23T14:30:00
Custom Format উদাহরণ:
import java.time.*;
import java.time.format.DateTimeFormatter;
public class CustomFormatExample {
public static void main(String[] args) {
LocalDateTime dateTime = LocalDateTime.now();
// Custom DateTime format
DateTimeFormatter customFormatter = DateTimeFormatter.ofPattern("dd MMMM yyyy HH:mm:ss");
String formattedDateTime = dateTime.format(customFormatter);
System.out.println("Formatted DateTime: " + formattedDateTime);
}
}
আউটপুট:
Formatted DateTime: 23 December 2024 14:30:00
ব্যাখ্যা:
- Predefined Format: আপনি
DateTimeFormatter.ISO_LOCAL_DATEঅথবা অন্যান্য predefined ফরম্যাট ব্যবহার করে সহজেই ISO স্ট্যান্ডার্ড অনুসরণ করা ফরম্যাট পেতে পারেন। - Custom Format: আপনি
DateTimeFormatter.ofPattern("pattern")ব্যবহার করে নিজের কাস্টম ফরম্যাট তৈরি করতে পারেন। এখানে"dd MMMM yyyy HH:mm:ss"ফরম্যাটে দিন, মাস, বছর, ঘণ্টা, মিনিট এবং সেকেন্ড প্রদর্শন করা হয়েছে।
Pattern Syntax:
d: দিন (1-31)M: মাস (1-12)y: বছরH: ঘণ্টা (0-23)m: মিনিট (0-59)s: সেকেন্ড (0-59)a: AM/PMz: সময় অঞ্চল
- Instant ক্লাসটি UTC সময়ের একটি নির্দিষ্ট মুহূর্ত সংরক্ষণ করে এবং বিভিন্ন সময় সিস্টেমের মধ্যে কনভার্ট করতে ব্যবহৃত হয়।
- DateTimeFormatter ব্যবহার করে আপনি Predefined এবং Custom তারিখ এবং সময় ফরম্যাট তৈরি ও প্রয়োগ করতে পারেন।
- Predefined Formats যেমন
ISO_LOCAL_DATE,ISO_LOCAL_TIMEএবংISO_LOCAL_DATE_TIMEব্যবহার করে আপনি সহজে ISO স্ট্যান্ডার্ড অনুযায়ী তারিখ ও সময় ফরম্যাট করতে পারেন। - Custom Formats দিয়ে আপনি নির্দিষ্ট প্যাটার্নে তারিখ এবং সময় ফরম্যাট করতে পারেন।
এটি Java 8+ তে তারিখ, সময় এবং টাইমস্ট্যাম্পের কাজ করার জন্য একটি অত্যন্ত শক্তিশালী এবং কার্যকরী API।
Read more